/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sistemaacademico;

import java.util.Scanner;

/**
 *
 * @author thiagoj
 */
public class Interface {

	public static int menuPrincipal() {
		Scanner in = new Scanner(System.in);
		System.out.println("-----------------------------------------");
		System.out.println("|           Sistema Academico           |");
		System.out.println("-----------------------------------------");
		System.out.println("| 1 - Cadastrar estudante               |");
		System.out.println("| 2 - Remover estudante                 |");
		System.out.println("| 3 - Alterar dados do estudante        |");
		System.out.println("| 4 - Listar nomes dos estudantes       |");
		System.out.println("| 5 - Gravar em arquivo                 |");
		System.out.println("| 6 - Ler do arquivo                    |");
		System.out.println("| 7 - Sistema Disciplina                |");
		System.out.println("| 0 - Sair                              |");
		System.out.println("-----------------------------------------");
		System.out.print("Digite a opcao: ");
		return in.nextInt();


	}

	public static Estudante cadastroStudante(Lista lista) {
		Scanner in = new Scanner(System.in);
		int matricula = 0;
		if (lista.getUltimo() != null){
			matricula = lista.getUltimo().getNodo().getMatricula();
		}
		matricula++;
		
		System.out.print("Nome: ");
		String nome = in.next();
		System.out.print("CPF: ");
		String cpf = in.next();
		System.out.print("Dia de nascimento: ");
		int dia = in.nextInt();
		System.out.print("Mes de nascimento: ");
		int mes = in.nextInt();
		System.out.print("Ano de nascimento: ");
		int ano = in.nextInt();
		Data data = new Data(dia, mes, ano);

		Estudante estudante = new Estudante(matricula, nome, cpf, data);

		return estudante;
	}

	public static void listaDeEstudantesNome(Lista lista) {
		System.out.println("Lista de estudantes");
		Nodo nodoI = lista.getPrimeiro();
		System.out.println(lista.getPrimeiro().getNodo().getNome());
		while (nodoI.getProximo() != null) {
			nodoI = nodoI.getProximo();
			System.out.println(nodoI.getNodo().getNome());
		}
	}

	public static int listarEstudantes(Lista lista) {
		Scanner in = new Scanner(System.in);
		System.out.println("Lista de estudantes: ");
		System.out.println("Matricula \t\t Nome \t\t");

		

		Nodo nodoI = lista.getPrimeiro();
		Estudante estudante = nodoI.getNodo();
		
		if (nodoI != null){
			estudante = nodoI.getNodo();
			System.out.println(estudante.getMatricula() + "\t\t\t" + estudante.getNome());
		}
		
		while (nodoI.getProximo() != null) {
			nodoI = nodoI.getProximo();
			estudante = nodoI.getNodo();
			System.out.println(estudante.getMatricula() + "\t\t\t" + estudante.getNome());
			
		}

		System.out.print("Digite o codigo: ");
		int opcao = in.nextInt();
		return opcao;

	}

	public static Estudante alterarEstudante(Estudante estudante) {
		Scanner in = new Scanner(System.in);
		System.out.println("Alterar os dados do estudante: ");
		System.out.print("Nome (" + estudante.getNome() + "): ");
		String nome = in.nextLine();
		System.out.print("Matricula (" + estudante.getMatricula() + "): ");
		int matricula = in.nextInt();
		System.out.print("CPF (" + estudante.getCpf() + "): ");
		in.next();
		String cpf = in.nextLine();

		System.out.println("Data de nascimento: (" + estudante.getDataNasc().imprimir() + "):");
		System.out.print("Deseja alterar a data? s/n: ");
		String pergunta = in.next();
		if (pergunta.equals("s") || pergunta.equals("S")) {
			System.out.print("Digite o dia: ");
			int dia = in.nextInt();
			System.out.print("Digite o mes: ");
			int mes = in.nextInt();
			System.out.print("Digite o ano: ");
			int ano = in.nextInt();
			Data data = new Data(dia, mes, ano);
			estudante.setDataNasc(data);
		}

		if (!nome.equals("")) {
			estudante.setNome(nome);
		}

		if (matricula != 0) {
			estudante.setMatricula(matricula);
		}

		if (!cpf.equals("")) {
			estudante.setCpf(cpf);
		}

		return estudante;


	}

	public static boolean removerEstudante(Nodo nodo) {
		System.out.println("Voçe deseja remover o estudante : " + nodo.getNodo().getNome() + ", matricula:" + nodo.getNodo().getMatricula() + "? (s/n): ");
		Scanner in = new Scanner(System.in);
		String pergunta = in.next();
		if (pergunta.equals("s") || pergunta.equals("S")) {
			return true;
		}
		
		return false;
	}

	public static int sistemaDisciplina() {
		System.out.println("-----------------------------");
		System.out.println("|  Sistema de Disciplinas   |");
		System.out.println("-----------------------------");
		System.out.println("| 1 - Adicionar Disciplina  |");
		System.out.println("| 2 - Remover Disciplina    |");
		System.out.println("| 3 - Listar Disciplinas    |");
		System.out.println("| 4 - Adicionar Conceito    |");
		System.out.println("| 5 - Remover Conceito      |");
		System.out.println("| 6 - Listar Conceitos      |");
		System.out.println("-----------------------------");
		System.out.print(" Digite a opcao: ");
		Scanner in = new Scanner(System.in);
		return in.nextInt();
	}

	public static void adicionarDisciplina(Estudante estudante) {
		System.out.print("Deseja adicionar disciplina? s/n: ");
		Scanner in = new Scanner(System.in);
		String pergunta = in.next();
		if (pergunta.equals("s") || pergunta.equals("S")) {
			System.out.print("Digite o nome da Disciplina: ");
			String disciplina = in.next();

			if (estudante.adicionarDisciplina(disciplina) == false) {
				System.out.println("Erro ao adiciona a disciplina, Vetor cheio.");
			}



		}

	}

	public static void listarDisciplinas(Estudante estudante) {
		Scanner in = new Scanner(System.in);
		Disciplina[] disciplinas = estudante.getDisciplina();
		int i = 0;
		System.out.println("-----------------------------");
		System.out.println("|   Lista de Disciplinas    |");
		System.out.println("-----------------------------");
		System.out.println("Codigo\tDisciplina");
		for (Disciplina d : disciplinas) {
			if (d != null) {
				System.out.println(i + "\t" + d.getNome());
			}
			i++;
		}


	}

	public static void apagarDisciplina(Estudante estudante, int codigoDisciplina) {
		Scanner in = new Scanner(System.in);
		System.out.print("Deseja realmente apagar a disciplina " + estudante.getDisciplina()[codigoDisciplina].getNome()
				+ " Do estudante " + estudante.getNome() + " S/N? ");
		String opcao = in.next();
		if (opcao.equals("S") || opcao.equals("s")) {
			estudante.getDisciplina()[codigoDisciplina] = null;
		}
	}

	public static void adicionarConceito(Estudante estudante, int codigoDD) {
		Scanner in = new Scanner(System.in);
		int i = 0;
		System.out.println("Diciplina: " + estudante.getDisciplina()[codigoDD].getNome());
		System.out.print("Digite o conceito a ser adicionado: ");
		while (estudante.getDisciplina()[codigoDD].getConceito()[i] != null && i < estudante.getDisciplina()[codigoDD].getConceito().length) {
			i++;
		}

		if (i < estudante.getDisciplina()[codigoDD].getConceito().length) {
			estudante.getDisciplina()[codigoDD].getConceito()[i] = in.next();

		} else {
			System.out.println("Vetor de conceitos cheio.");
		}



	}

	public static void listarConceitos(Disciplina disciplina) {
		System.out.println("Diciplina: " + disciplina.getNome());
		int i = 0;
		for (String s : disciplina.getConceito()) {
			if (s != null) {
				System.out.println(i + "\t" + s);
				i++;
			}

		}

	}
}
